約 4,062,699 件
https://w.atwiki.jp/solutionlog/pages/29.html
Webアプリケーションの種類 プレゼンテーション指向 動的な内容を含む、マークアップによるインタラクティブなWebページ サービス指向 Webサービスのエンドポイント プレゼンテーション指向のWebアプリがクライアントになることが多い Webアプリケーション Webコンポーネントは動的な拡張性を与える サーブレット サービス指向のアプリの実装に向いてる リクエストのディスパッチ、バイナリデータの扱いなどプレゼンテーション指向アプリのコントロール JSF,Facelets XHTMLとかのテキストマークアップページの生成 JSP Webサービスエンドポイント WebコンポーネントはWebコンテナによって提供される リクエストディスパッチ セキュリティ 並行性 ライフサイクル管理 名前空間、トランザクション、メールなどへのアクセス Webアプリケーションの設定 JavaEEアノテーション XML設定ファイル Webアプリケーションのライサイクル Webアプリケーションの作成、配置、実行 Webコンポーネントの作成 DD作成 コンパイル パッケージング Webコンテナへの配置 Webモジュール Webリソース=Webコンポーネント、静的なWebコンテンツファイル Webモジュール=最小の配備可能で利用可能なWebリソースの単位 サーブレットのWebアプリケーションに対応 サーバサイドのユーティリティクラスやクライアントサイドのクラスも含められる Webモジュールの構成(ドキュメントルート以下) application-specific-dir WEB-INF classes tags lib web.xml JSFを使う場合 セキュリティ情報を設定する場合 Webコンポーネントアノテーションの設定をオーバライドする場合 ejb-jar.xml Webモジュールはパッケージされない状態、またはWARファイルとして配備できる WARをGlassfishにデプロイする glassfish-web.xml を WEB-INFにおく 実行時DD Webアプリケーションのコンテキストルート アプリケーションリソース名とGlassfishサーバ上でのリソース名のマッピング Packaging a Web Module Deploying a Web Module Listing Deployed Web Modules localhost 4848 の管理コンソールから確認 asadmin list-applications Updating a Web Module Dynamic Reloading コードやDDを変更したときに、再デプロイが不要 変更したクラスファイルをコピーするだけでいい サーバが定期的に、変更をチェックして自動的に再デプロイしてくれる 開発時には有効だけど、製品モードではパフォーマンスが落ちるからやめたほうがいい。 リロードされるとセッションが無効になる GlassFish ではデフォルトで有効 管理コンソールから無効にできる Undeploying Web Modules Conguring Web Applications Webアプリケーションを設定するには、アノテーションまたはDDを用いる Mapping URLs to Web Components サーブレットのクラスアノテーション @WebServlet("/xxx") Declaring Welcome Files WebコンポーネントにマップされないURLに対して、ウェルカムファイルの検査が行われる http //host port/context/notmatch + welcome file name Setting Context and Initialization Parameters アプリケーションコンテキストオブジェクトをWebコンポーネントは共有する。 アプリケーションコンテキストまたは、Webコンポーネントに初期化パラメータを設定できる web.xmlに設定 @WebServlet(..., initParams={@WebInitParam(name="xxx", value="yyy")}) Mapping Errors to Error Screens エラーの種類に応じて、表示するエラー画面を設定できる HTTPレスポンスのステータスコード Java例外 DDでエラーの種類ごとにerror-page要素で指定する Declaring Resource References リソースはアノテーションを使ってインジェクションできる エンタープライズビーン、データソース、Webサービス インジェクション先は、コンテナ管理オブジェクトでないとだめ Servlet, Servlet filter, Event listener, Taglib listener, Taglib tag handler, Managed Bean Declaring a Reference to a Resource リソース参照には、@Resourceアノテーションを使う クラス、メソッド、フィールドに付与 コンテナによって、JNDIリソースがインジェクションされる 変数名と型によって、インジェクションするリソースが解決される 複数リソースをあるコンポーネントにインジェクションする @Resources ({ @Resource (name="myDB" type=java.sql.DataSource), @Resource(name="myMQ" type=javax.jms.ConnectionFactory) }) Declaring a Reference to a Web Service Webサービスの参照をインジェクションするには、@WebServiceRefアノテーションを使う
https://w.atwiki.jp/ce00582/pages/5645.html
package json; import java.io.*; public class pro { String[] name=new String[101]; String str; int[] age=new int[101]; int s,sx; String[] credit=new String[101]; String[] var=new String[101]; int creditnumber,datanumber; String[][] data=new String[101][10]; String[] jdata=new String[500]; public static void main(String[] args) { pro test=new pro(); } pro(){ credit[1]="name"; credit[2]="age"; var[1]="string"; var[2]="num"; creditnumber=2; datanumber=10; for(s=1;s 101;s++){ name[s]="のり"; age[s]=s; } for(s=1;s 101;s++){ data[s][1]=name[s]; data[s][2]=""+age[s]; } for(s=1;s datanumber+1 ;s++){ jdata[s]=subdata(s); } writefile("ren.json"); } void writefile(String file){ int z1; try{ PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter(file))); pw.println("["); for(s=1;s datanumber;s++){ pw.print(jdata[s]); pw.println(","); } pw.println(jdata[datanumber]); pw.println("]"); System.out.println("ファイルに書きこみました。"); pw.close(); } catch(IOException ep){ System.out.println("入出力エラーです。"); } } String subdata(int s){ String strx; int sx; strx="{"; for(sx=1;sx creditnumber;sx++){ strx=strx+credit(credit[sx]); if(var[sx].indexOf("string") -1 )strx=strx+change(data[s][sx]); if(var[sx].indexOf("num") -1 )strx=strx+data[s][sx]; strx=strx+","; } sx=creditnumber; strx=strx+credit(credit[sx]); if(var[sx].indexOf("string") -1 )strx=strx+change(data[s][sx]); if(var[sx].indexOf("num") -1 )strx=strx+data[s][sx]; strx=strx+"}"; return strx; } String credit(String str){ String strx; strx=change(str)+" "; return strx; } String change(String str){ String strx; strx="\""+str+"\""; return strx; } }
https://w.atwiki.jp/estyle/pages/20.html
JavaといえばJakartaで。
https://w.atwiki.jp/ce00582/pages/3572.html
game0401 (1)プログラム http //www15.atwiki.jp/ce00582/pages/3571.html (2)コメント (3)リンク http //wisdom.sakura.ne.jp/system/java/net/javanet5.html (4)作業記録 2月21日 ページ作成
https://w.atwiki.jp/dotcom/pages/134.html
使ってみました。 必要なものJDK(Java SE Development Kit ): JRE(J2SE Runtime Environment ) Eclipse ダウンロードにインストールJDK JRE Eclipse 必要なもの 必要なものをPCにぶちこんでみたの。 JDK(Java SE Development Kit ): これがないと開発できないの。コンパイルとかデバッグとかしてくれるの。 JRE(J2SE Runtime Environment ) これがないとJAVAでつくったものが動かないの。JAVAアプリケーションとか実行する時はこれを入れておかないといけないの。 でもこれJDKにはいってるのがあるのね。だから開発する人はそのJDKだけいれちゃえばいいのね。 Eclipse いろいろ開発できるソフト。無料なのにすげー使えるからみんな注目してるの。でもすげーメモリ使うの。困るの。 2G積んで設定変えたらなんかちゃんと動くようになった。でも起動遅いし実行考えるし。打ちなれてる人はこれじゃなくてもいいのかな。 JAVAだけじゃなくてCもC++も、果てはCOBOLの開発もできるんですって。 それ専用のプラグインという追加ソフトみたいなのを入れていけばなんでもできちゃう。 プラグインはいろんな人が作ってて、有料のもあるけど元が無料なら無料プラグインがいいよね。 ってことで私は無料のだけ使います。 ダウンロードにインストール 実際にダウンロードしてインストールしてみたの。 そのときのメモ。 ちゃんとググれば入れ方使い方が書かれたサイトって結構あるの。 時々環境が違ったりして困るけど、大丈夫。何とかなります。 JDK ここからDL。 http //java.sun.com/j2se/1.5.0/ja/download.html ネットでいろいろ検索してやってみました。 本はあったのですが、コピペできるほうが楽々。だから覚えないのね私。 JDKは必須です。 JRE あーとーでー。 Eclipse Eclipseのところみてみて。
https://w.atwiki.jp/api_programming/pages/35.html
下位ページ Content scope Javaでクラス リスエストEventのリストを取得する レスポンスCalendar Events Event Google Calendar API scope どっちか https //www.googleapis.com/auth/calendar https //www.googleapis.com/auth/calendar.readonly Javaでクラス https //developers.google.com/resources/api-libraries/documentation/calendar/v3/java/latest/com/google/api/services/calendar/model/package-summary.html リスエスト https //www.googleapis.com/calendar/v3 Eventのリストを取得する GET https // www.googleapis.com/calendar/v3 /calendars/calendarId/events/ レスポンス Calendar CalendarList - Google Developer Events Eventのリストを取得した場合のレスポンス kind "calendar#events", etag etag, summary" string, description" string, updated" datetime, timeZone" string, accessRole" string, defaultReminders [ ] method" string, minutes" integer nextPageToken" string, nextSyncToken" string, items [ ] (下のEvent Resource) Event Events - Google Developer kind "calendar#event", etag" etag, id Eventのid(string, base32hex encoding, ection 3.1.2 in RFC2938, 5~1024文字、カレンダー内でユニーク)。 status" string, htmlLink" string, created" datetime, updated" datetime, summary Eventのタイトルstring, description" string, location" string, colorId" string, creator" {id" string, email" string, displayName" string, self" boolean organizer" {id" string, email" string, displayName" string, self" boolean start 開始日時の情報date 終日イベントの場合の開始日 YYYY-MM-DD dateTime 開始日時(形式 RFC 3339)。timeZone が明示されていなければ、timeZoneのオフセットが必要。 timeZone string end 終了日時の情報date 終日イベントの場合の終了日 YYYY-MM-DD dateTime 開始日時(形式 RFC 3339)。timeZone が明示されていなければ、timeZoneのオフセットが必要。 timeZone (Optional) string endTimeUnspecified" boolean, recurrence" [ string ], recurringEventId" string, originalStartTime" {date" date, dateTime" datetime, timeZone" string transparency" string, visibility" string, iCalUID" string, sequence" integer, attendees [ ] [id" string, email" string, displayName" string, organizer" boolean, self" boolean, resource" boolean, optional" boolean, responseStatus" string, comment" string, additionalGuests" integer attendeesOmitted" boolean, extendedProperties" {private" {(key) string "shared" {(key) string hangoutLink" string, gadget" {type" string, title" string, link" string, iconLink" string, width" integer, height" integer, display" string, preferences" {(key) string anyoneCanAddSelf" boolean, guestsCanInviteOthers" boolean, guestsCanModify" boolean, guestsCanSeeOtherGuests" boolean, privateCopy" boolean, locked" boolean, reminders {useDefault" boolean, overrides [ ] [method" string, minutes" integer source" url" string, title" string
https://w.atwiki.jp/aias-closurecompiler/pages/15.html
トップページ Closure Compiler Service API Closure Compiler Service APIはClosure Compilerの機能をWeb-APIとして提供します。この方式ではユーザプログラムは直接APIサーバとHTTP-POST通信を行い、処理結果を受け取れるようになります。 Closure Compiler Service UIは短いコードを使ってCompilerを試してみる分にはとても良いアプリケーションです。しかしあなたがJavaScriptのコンパイルプロセスを自動化したいと考えていたり、あるいはコンパイル処理を(IDEの拡張機能のようなかたちで)ビルドプロセスの一部として組み込みたいと考えているのであれば、Closure Compiler Service APIの利用は検討する価値があります。 以下では簡単なアプリケーションを作成しながら、何段階かに分けてAPIの使い方を説明します。 Closure Compiler Service APIのリファレンスは、こちらを参照してください。 このページは公式サイトの以下のページを元に作成しました。http //code.google.com/closure/compiler/docs/gettingstarted_api.htmlhttp //code.google.com/closure/compiler/docs/api-tutorial1.htmlhttp //code.google.com/closure/compiler/docs/api-tutorial2.html 目次 APIサーバのURL 最も単純なサンプルアプリケーション APIとの通信 JavaScriptファイルをAPIに渡すには データサイズの制限 APIサーバのURL Closure Compiler Service APIへのリクエストは、下記のURLへ送信してください。 http //closure-compiler.appspot.com/compile 最も単純なサンプルアプリケーション 手はじめに、formを使ってAPIサーバへリクエストを送るアプリケーションを作成してみます。Closure Compiler Service APIをformから呼出すのは実際の利用方法としてはやや不自然ですが、HTTP-POSTによる通信の様子を確認するにはこのやり方が最も簡単です。 下のHTMLをコピーペーストして closure_compiler_test.html というファイルを作成してください。 html body form action="http //closure-compiler.appspot.com/compile" method="POST" p Type JavaScript code to optimize here /p textarea name="js_code" cols="50" rows="5" function hello(name) { // Greets the user alert( Hello, + name); } hello( New user ); /textarea input type="hidden" name="compilation_level" value="WHITESPACE_ONLY" input type="hidden" name="output_format" value="text" input type="hidden" name="output_info" value="compiled_code" br br input type="submit" value="Optimize" /form /body /html 上のformでは4つの必須パラメータが設定されています。(各パラメータの詳細はこちらを参照してください)中でも重要なのは次の2つです。 js_code 処理対象となるJavaScriptコードを指定します。このようにコード文字列を直接送信する方法の他に、JSファイルのURLから入力コードを指定することもできます。後者についてはこちらで詳しく説明します。 compilation_level コンパイルレベルを指定します。この例では最も圧縮率の低い WHITESPACE_ONLY が設定されていますが、より強力にコードの短縮を行いたいのであれば、 SIMPLE_OPTIMIZATIONS や ADVANCED_OPTIMIZATIONS を試してみてください。 closure_compiler_test.html をブラウザで開きます。 Optimize ボタンをクリックしコードをClosure Compiler Service APIへ送ると、下のようなコードがAPIサーバから返却されてくるはずです。返却されるコードはオリジナルコードからコメントと空白・改行を削除したもので、機能はオリジナルと同じですがサイズはかなり小さくなっています: function hello(name){alert("Hello, "+name)}hello(){"New user"}; APIとの通信 次に、プログラムが直にHTTP通信を行うサンプルプログラムを示します: 以下のサンプルはPythonで記述されています。ただし構造自体はごく単純ですので、理解するのにPythonの言語的な知識は特に必要ありません。 #!/usr/bin/python2.4 import httplib, urllib, sys # Define the parameters for the POST request and encode them in # a URL-safe format. params = urllib.urlencode([ ( js_code , sys.argv[1]), ( compilation_level , WHITESPACE_ONLY ), ( output_format , text ), ( output_info , compiled_code ), ]) # Always use the following value for the Content-type header. headers = { "Content-type" "application/x-www-form-urlencoded" } conn = httplib.HTTPConnection( closure-compiler.appspot.com ) conn.request( POST , /compile , params, headers) response = conn.getresponse() data = response.read() print data conn.close このスクリプトはコマンドライン引数として渡されたJavaScriptをコンパイルし、処理されたコードを出力します。上のコードをコピーペーストして compile.py というファイル名で保存、ファイルのパーミッションを変更して実行権限を付与した後、以下のコマンドを実行してください。 $ python compile.py alert("hello");// This comment should be stripped 注意: Windows環境でこのプログラムを実行するには、Pythonのインストールが必要です。詳細はこちらを参照してください。 コマンドはAPIから返却されたコンパイル済みコードを出力します。このサンプルでは WHITESPACE_ONLY レベルが設定されているので、Compilerはコメントを取り除く以外は何もしません。 alert("hello"); このスクリプトについて、注意すべき点をいくつか挙げておきます。 HTTPConnection オブジェクトの request メソッドに渡されるパラメータは、 urllib.urlencode によって事前に全てURLエンコードされています。変数 params の値は次のような文字列です: js_code=alert%28%22hello%22%29%3B%2F%2F+This+comment+should+be+stripped output_info=compiled_code out=text compilation_level=WHITESPACE_ONLY リクエストの Content-type ヘッダは常に application/x-www-form-urlencoded でなければなりません。 JavaScriptファイルをAPIに渡すには 上の例ではコマンドライン引数としてJavaScript文字列をプログラムに渡していました。しかし実業務で使われるJavaScriptコード(その長さは2、3行などすぐに超えてしまうでしょう)を扱うには、この方式はやや無理が有るように思われます。このようなケースでは、 code_url パラメータを使って処理したいJavaScriptファイルのURLを指定するのがよいでしょう。 例として、次のJavaScriptプログラムを取り上げます: /** * A simple script for adding a list of notes to a page. The list diplays * the text of each note under its title. */ /** * Creates the DOM structure for a note and adds it to the document. */ function makeNoteDom(noteTitle, noteContent, noteContainer) { // Create DOM structure to represent the note. var headerElement = document.createElement( div ); var headerText = document.createTextNode(noteTitle); headerElement.appendChild(headerText); var contentElement = document.createElement( div ); var contentText = document.createTextNode(noteContent); contentElement.appendChild(contentText); var newNote = document.createElement( div ); newNote.appendChild(headerElement); newNote.appendChild(contentElement); // Add the note s DOM structure to the document. noteContainer.appendChild(newNote); } /** * Iterates over a list of note data objects and creates a DOM */ function makeNotes(data, noteContainer) { for (var i = 0; i data.length; i++) { makeNoteDom(data[i].title, data[i].content, noteContainer); } } function main() { var noteData = [ {title Note 1 , content Content of Note 1 }, {title Note 2 , content Content of Note 2 }]; var noteListElement = document.getElementById( notes ); makeNotes(noteData, noteListElement); } main(); このプログラムをひとかたまりの大きな文字列としてAPIに渡すより、ファイル名を指定するだけの方が便利です。それには以下のようにします: 上のコードをファイルに保存します。 そのファイルをWEBからアクセス可能な場所(あなたのWebサーバなど)に置きます。 APIとの通信で作ったデモを修正し、 js_code を code_url に置き換えます。 params = urllib.urlencode([ ( code_url , sys.argv[1]), # --- This parameter has a new name! ( compilation_level , WHITESPACE_ONLY ), ( output_format , text ), ( output_info , compiled_code ), ]) 以下のコマンドを実行すると、 http //example.com/yourJs.js というURLがClosure Compilerに渡されます。Compilerは指定されたURLからファイルを取得してコンパイルし、その結果を返却します。 $ python compile.py http //example.com/yourJs.js 1つのリクエストの中に複数の code_url パラメータを含めることができます: params = urllib.urlencode([ ( code_url , http //example.com/yourJsPart1.js), ( code_url , http //example.com/yourJsPart2.js), ( compilation_level , WHITESPACE_ONLY ), ( output_format , text ), ( output_info , compiled_code ), ]) ファイルは指定順に結合されてから、1つのコードとしてコンパイルされます。尚、 code_url と js_code も1つのリクエスト内で同時に使用できます。 データサイズの制限 Closure Compiler Service APIに送信できるデータのサイズには、以下の2種類の制限が設けられています。 POSTデータのサイズの合計は200,000バイトまで クライアントがAPIに送信するPOSTデータのサイズは200,000バイト以内でなければなりません。この制限を超過した場合はサーバエラー 8 POST data too large. が返却されます。もし js_code パラメータで送信しているソースコードの量が多い場合は、ファイルに分離した上でそれを code_url パラメータで参照するようにしてください。 コードの総量は1,024,000バイトまで APIが1回のリクエストで処理できるコードの総量は1,024,000バイトとされています。ここでいうコードの総量とは、 code_url 及び externs_url に指定された全てのファイル内のコード、 js_code 及び js_externs に指定された全てのコード文字列の合計を指します。 この制限を超過した場合はサーバエラー 9 File too large. が返却されます。 このエラーが発生する場合は、ローカルマシン上でのClosure Compiler Applicationの使用を検討してください。
https://w.atwiki.jp/javamock/pages/35.html
テキストエディタ作成 ver1.0 Javaでテキストエディタ作成に挑戦します。 作成の過程で学べたことをメモしておきます。 作ったファイルを置いておきますが、自己責任でお願いします。 全角文字の入ったパスにjarファイルを置くと動作しません。 ダブルクリックで動作すると思います。 jarファイル TextEditor1.0.jar ソース テキストエディタソースver1.0 機能 新規 開く 上書き保存 名前を付けて保存 これしかありません。。。 気になる java.io.IOExceptionだけでいい? 例外発生時にアラートを表示するようにしたい writeFileメソッド内で例外処理を行えばいい? } catch (Exception e) { e.printStackTrace(); } 名前を付けて保存時に既にあるファイル名に保存する場合もアラートがほしい はまった JFileChooserのgetNameメソッド 引数なしでファイル名が取れると思ったけどNullPointerExceptionになった File selectedFile = fileChooser.getSelectedFile(); setTitle(fileChooser.getName(selectedFile)); まなんだ 名前を付けて保存(A)のAはSaveAsのA 初挑戦Awt、Swingを使えた GUIアプリケーションの作り方 importしたクラスライブラリ java.awt.Dimension java.awt.HeadlessException java.awt.event.ActionEvent java.awt.event.ActionListener java.io.File java.io.FileReader java.io.FileWriter java.io.IOException javax.swing.JFileChooser javax.swing.JFrame javax.swing.JMenu javax.swing.JMenuBar javax.swing.JMenuItem javax.swing.JOptionPane javax.swing.JScrollPane javax.swing.JTextArea ここら辺のクラスに強くなりたいので、メモしておきます。 GUIアプリケーションの大まかな作り方 JFrameクラスのインスタンスを生成 生成したインスタンスのメソッドを介してウィンドウの初期設定 今回はJFrameを継承したmainクラスを作り、mainメソッドで自クラスのインスタンスを作成、コンストラクタでウインドウの各設定をした 使用したSwingコンポーネント トップレベルコンテナ JFrame 中間コンテナ JOptionPane JScrollPane コントロール JMenu JMenuBar JMenuItem JTextArea メモ JScrollPane:自身に追加されたコンポーネントに対して、スクロール処理を提供
https://w.atwiki.jp/ce00582/pages/5646.html
package json; import java.io.*; public class pro { String[] name=new String[101]; int[] age=new int[101]; int s,sx; String[] credit=new String[11]; String[] var=new String[11]; int creditnumber,datanumber; String[][] data=new String[101][10]; public static void main(String[] args) { pro test=new pro(); } pro(){ credit[1]="name"; credit[2]="age"; var[1]="string"; var[2]="num"; creditnumber=2; datanumber=30; for(s=1;s 101;s++){ name[s]="のり"; age[s]=s; } for(s=1;s 101;s++){ data[s][1]=name[s]; data[s][2]=""+age[s]; } json sub=new json(); sub.data=data; sub.datanumber=datanumber; sub.creditnumber=creditnumber; sub.credit=credit; sub.var=var; sub.makedata("ren2.json"); } } package json; import java.io.*; public class json{ String[] name=new String[101]; String str; int[] age=new int[101]; int s,sx; String[] credit=new String[101]; String[] var=new String[101]; int creditnumber,datanumber; String[][] data=new String[101][10]; String[] jdata=new String[500]; void makedata(String file){ for(s=1;s datanumber+1 ;s++){ jdata[s]=subdata(s); } writefile(file); } void writefile(String file){ int z1; try{ PrintWriter pw = new PrintWriter (new BufferedWriter(new FileWriter(file))); pw.println("["); for(s=1;s datanumber;s++){ pw.print(jdata[s]); pw.println(","); } pw.println(jdata[datanumber]); pw.println("]"); System.out.println("ファイルに書きこみました。"); pw.close(); } catch(IOException ep){ System.out.println("入出力エラーです。"); } } String subdata(int s){ String strx; int sx; strx="{"; for(sx=1;sx creditnumber;sx++){ strx=strx+credit(credit[sx]); if(var[sx].indexOf("string") -1 )strx=strx+change(data[s][sx]); if(var[sx].indexOf("num") -1 )strx=strx+data[s][sx]; strx=strx+","; } sx=creditnumber; strx=strx+credit(credit[sx]); if(var[sx].indexOf("string") -1 )strx=strx+change(data[s][sx]); if(var[sx].indexOf("num") -1 )strx=strx+data[s][sx]; strx=strx+"}"; return strx; } String credit(String str){ String strx; strx=change(str)+" "; return strx; } String change(String str){ String strx; strx="\""+str+"\""; return strx; } }
https://w.atwiki.jp/monosepia/pages/11154.html
ジョージ・ソロス また悪質な誘導が始まりましたね ある団体が “change org” を使って改憲反対の署名を募ってますが絶対にダメですよ、これは個人情報抜かれて利用されます ソロス、USAID、人工芝運動、カラー革命 ↓ “change org” いまだに私のツイートに貼り付けてくる方がいますが、いい加減にしてもらえますか pic.twitter.com/BFneHT2hOJ — 野田CEO (@nodaworld) July 29, 2022 【必読】 “change org” について eBay創設者のピエール・オミダイアが出資、オミダイアはウクライナクーデターの反政府NGOに資金提供、USAIDのカラー革命とオミダイアはセット!@hazukinotaboo2 さんのブログ「葉月のタブー」に詳しく書かれていますので是非ご覧下さい ↓https //t.co/zXgmwaIdSU — 野田CEO (@nodaworld) July 29, 2022 “change org” は罠です https //t.co/28wncBwZkL — 野田CEO (@nodaworld) July 29, 2022 Twitterでも何年も前から皆さんが危険性を指摘しているのに未だに署名する人があとを絶たないですよね。どうしたものでしょう… — 野田CEO (@nodaworld) July 29, 2022